1. Field of the Invention
The present application relates generally to an improved data processing system and in particular, to a computer implemented method, apparatus, and computer usable program code for managing a computer cluster. Still more particularly, the present application relates to a computer implemented method, apparatus, and computer usable program code for improving processing performance in an application server cluster.
2. Description of the Related Art
Currently, application servers in a server cluster environment are utilized to increase the efficiency of user access to an application by allowing multiple application servers to handle application method calls simultaneously. A server cluster is a group of computers tasked to perform a particular job, such as running an application or a service. A server cluster can be considered a virtual computer because all the cluster members are performing the same tasks. Users or clients of the application or service do not know that there is more than one physical computer providing access to the service or application. The users or clients see only a single entity. As used herein, a cluster member is a server that is part of the larger server cluster.
A server cluster is required to have at least two cluster members, although a server cluster can include any number of cluster members in excess of two cluster members. However, the number of cluster members utilized in a server cluster typically does not exceed two hundred and fifty-six (256) cluster members. It is the norm in current practice for a server cluster to include from two to six cluster members.
A cluster member may or may not be located on the same physical machine as one or more other cluster members. In current practice, each cluster member is typically located on a separate physical machine.
The physical machine that the cluster member is located on is referred to as an application server. An application server is a server that runs application server software. Application server software is the software that provides the necessary means for establishing client and server applications, application services, and related application content.
For example, a server cluster could run an email application. In this example, the email application software is located on one or more application servers in the server cluster. Each time a user on a client requests access to the user's email account, the client sends a method call via the email application software to gain access to the user's email account associated with the email application running on the server cluster.
A work load manager (WLM) is a software component in a server cluster that manages the workload of application method calls. The work load manager receives method calls from one or more clients and routes those method calls to one or more cluster members for processing. An application method call is a call on a method or an application request from a client to access or utilize one or more functionalities provided by the application software.
Current work load managers in a server cluster use a weighted-round robin approach to manage incoming method calls from clients. The round robin approach keeps track of which servers have recently been asked to handle a method call. In the round robin approach, the work load manager maintains a list of cluster members. The work load manager sends each newly received method call to the next cluster member on the list of cluster members. In other words, a newly received method call is sent to the least recently used cluster member in the cluster.
For example, if a server cluster includes four cluster members and cluster member 1, cluster member 2, and cluster member 3 have just been asked to handle a method call, the work load manager will route the next incoming method call, method call D, to cluster member 4. Continuing the example, if another subsequent method call, method call E, is received, method call E, will be sent to cluster member 1, which is now the least recently used cluster member because cluster member 4 was used to process method call D.
However, using this weighted-round robin approach for routing method calls to cluster members can lead to performance degradation when the server cluster is under a heavy workload. A heavy workload can occur when the number of application requests received from one or more clients begins to approach a maximum number of application requests that a server cluster is capable of handling.